# 1.	写士兵类Soldier
class Soldier(object):
    # 2.	国籍country, 类属性,设为“China”
    country = 'China'

    # 3.	写方法setSol(n,a,b)，通过传参方式，为实例属性赋值
    def setSol(self, n, a, b):
        # 士兵实例属性3个：姓名name，武器arms,子弹bullet；
        self.name = n
        self.arms = a
        self.bullet = b

    # 4.	写实例方法setArms(c)，可以修改属性arms,通过传参为对象设置武器。
    def setArms(self, c):
        self.arms = c

    # 5.	写实例方法bullet的get方法,getBullet()，可以获取对象的子弹数量
    def getBullet(self):
        return self.bullet

    # 6.	写一个实例方法report,调用时，输出：
    # XX(国籍)士兵xx(士兵姓名): 正在练习xx(武器)射击！
    def report(self):
        print(f'{self.country}士兵{self.name}: 正在练习{self.arms}射击！')

    # 7.	写一个实例方法shoot，
    def shoot(self):
        # 1）在此函数体内调用report（）
        self.report()
        # 2）此方法调用1次时子弹减少1发，输出“还剩下子弹xx发！”（xx 为实际子弹数量）
        if self.bullet <= 0:
            print('没有子弹了！')
            return
        self.bullet -= 1
        print(f'还剩下子弹{self.bullet}发！')


# 8.	创建一个士兵对象sd，姓名name、武器arms和子弹bullet分别是’Jack’,’Ak-47’,100
sd = Soldier()
sd.setSol('Jack', 'Ak-47', 100)

# 9.	用类名输出类属性；
print(Soldier.country)

# 10.	用对象名sd调用shoot方法3次。
for i in range(3):
    sd.shoot()
